package com.kayang.dd.pojo;

import lombok.Data;

import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;

@Data
public class DeptModel extends BaseModel<DeptModel>{
    @Min(value = 1, message = "parent_id需要大于1")
    private int parent_id;

    @NotBlank(message = "name不能为空")
    private String name;

    private boolean hide_dept;

    /**
     * 指定可以查看本部门的其他部门列表，总数不能超过50。
     *
     * 当hide_dept为true时，则此值生效。
     * "123,456"
     * */
    private String  dept_permits;

    /**
     * 指定可以查看本部门的人员userId列表，总数不能超过50。
     *
     * 当hide_dept为true时，则此值生效
     * "user123,manager222"
     * */
    private String user_permits;

    /**
     * 是否限制本部门成员查看通讯录：
     *
     * true：开启限制。开启后本部门成员只能看到限定范围内的通讯录
     *
     * false（默认值）：不限制
     * */
    private boolean outer_dept;

    /**
     * 本部门成员是否只能看到所在部门及下级部门通讯录：
     *
     * true：只能看到所在部门及下级部门通讯录
     *
     * false：不能查看所有通讯录，在通讯录中仅能看到自己
     *
     * 当outer_dept为true时，此参数生效。
     * */
    private boolean outer_dept_only_self;


    /**
     * 指定本部门成员可查看的通讯录用户userId列表，总数不能超过50。
     *
     * 当outer_dept为true时，此参数生效。
     * "manager123,user123"
     * */
    private String outer_permit_users;


    /**
     * 指定本部门成员可查看的通讯录部门ID列表，总数不能超过50。
     * 当outer_dept为true时，此参数生效。
     * "456,123"
     * */
    private String outer_permit_depts;

    //是否创建一个关联此部门的企业群，默认为false即不创建
    private boolean create_dept_group;

    //是否默认同意加入该部门的申请
    private boolean auto_approve_apply;

    private int order;

    //部门标识字段，开发者可用该字段来唯一标识一个部门，并与钉钉外部通讯录里的部门做映射
    private String source_identifier;
}
